GDE专栏 | 物联网到底是什么?
文| Google 开发技术专家 (GDE) 王玉成 (York Wang)
2016 年 12 月,Google 发布了 Developer Preview 版的 Android Things,该平台为利用 Android 这一世界上最受支持的操作系统的强大功能构建物联网产品铺平了广阔的道路。严格意义上来讲,它并不是一个全新的操作系统,而是通过同样是 Google 开发的物联网操作系统 Brillo 改进优化的。
今天,就跟大家说说 Android Things 的前世与今生,以及它与 Brillo 的渊源,到底它解决了什么问题?
什么是物联网?
想知道为什么人们需要 Android Things,首先需要搞清楚什么是物联网:
以前我们在聊到物联网的话题时,只知道物联网使我们的生活更智能、更轻松、更高效。可以方便地控制智能设备。
即使最简单的控制设备,也会要求物联网具有三个最基本层次,每个层次的功能有所不同,春节刚过,我们就以春节回家为例,来说说物联网的这几个层次和它的功能。
物联网 - 回家过年
感知层 - 给不同长辈购买礼物
传输层 - 乘坐各种交通工具携带礼物回家
应用层 - 把礼物送到长辈手中
全面感知:
感知层需要解决数据源头的问题。怎么去搜集各种原始数据?物联网的物,即万物,数据搜集有多样性,我们需要靠各种传感器去感知不同的信息。就比如春节回老家前,我们需要给家里不同的长辈准备不同的礼物,比如爸爸可能需要一瓶好酒,奶奶可能需要一双好的保暖鞋,爷爷可能需要一个好的拐杖……每个人的需求可能是不同的。
可靠传递:
传输层解决数据的传输通路的问题。数据通路依靠各种协议,这些繁杂的协议,面对如何去实现自由的协议转换呢?春节回老家过年,先坐火车,再做公交,再坐大巴,有可能坐牛车……当你换乘交通工具时,完成的是协议的转换,而你所带的礼物,就是需要安全传送的数据信息。当你把礼物带回老家,物联网的数据才完好无损的到达目的地。
智能处理:
应用层解决数据如何处理。经过长途跋涉,过年终于回老家了。这些礼物,需要你进行分类,然后再走亲访友,给不同的人送不同的东西。物联网的数据处理也就是这样:把搜集到的各种原始的数据,转换成我们需要的信息。
操作系统
物联网的数据传输这么简单?那为什么还要弄这么复杂的操作系统?别急,我们还是拿春运来解释。
先自我羡慕一把,春运来回,我都成功抢到了火车硬卧票。如果你和我一样给爷爷带是急需的药品,春节回家又不一定能买到票,你可以提前一个月快递,毕竟药品先到更重要。当然,也有人把几个月都没洗的衣服,一起带回去让家人洗,暂且这也算给家人的新年礼物吧 ´・ω・`
在物联网的数据分析中,药品是属于那一类必须快速传递的信息,脏衣服是属于不怎么急的信息。这时候,简单的、单一的传输路径就出了问题了。有的智能设备,是支持多种传输模式的,比如串口传递控制信息,3G 上网卡传递必须实时接收的信息。如果春节你的家人都很忙,你也不会带一大堆脏衣吧?物联网的传感器设备,也有基本的决策功能,数据在节点上积累很多时,哪些先发,哪些后发?专业术语叫同步和异步,都是根据整个系统的不同而定的。
问:上面内容都看了,还是没有理解物联网到底是干啥的?
答:再经历一次春运吧 :-)
物联网的最小模型就和春运带礼物是一样的。但是,在实际的工程应用中,会复杂很多。在春运中,碰到的各种难题对应着物联网系统的各种问题。但是任何工程问题,都是在最小系统上,再针对易用性,安全性,稳定性……做一些复杂的功能开发,最终形成一个稳健的系统。可以这么说,如果把春运的各个环节的问题都解决了,你就可以做物联网的方案商了 :-)
Google 利用物联网操作系统来解决数据的收集和可靠传递,利用 Google Cloud 来解决数据智能处理。那么,Google 的物联网操作系统又经历了哪些变化呢?
前世:Brillo
Brillo 是在 2015 Google I/O 大会上发布的一款产品。也是 Google 的第一款物联网操作系统。带来了一个简单的 bsp 移植的模型,方便硬件厂商快速导入 Brillo 系统到他们自己的芯片/开发板上。并研发了 Weave 通信协议,解决物联网系统中多样化的通信协议的问题。Brillo 适用于物联网网关类似的产品,以前在 Google Device 推出过一款基于 Brillo 的路由器。
今生: Android Things
Android Things 是 2016 年 12 月份推出的物联网操作系统。做为 Brillo 的优化,主要做了以下改变:
Brillo 只能用 C/C++ 做开发,但是 Android Things,可以用 java 进行开发,而且做了 Android 系统的所有测试。也就是说,Android 的开发人员,能够很快的转换到 Android Things 的应用开发上来;
Android Things 应用研发周期,跟 Android 的研发周期相同,可以直接用 Android Studio 来开发,用 adb 进行连接...
Android Things 的 SDK 是 Android SDK 的子集;
完美支持 OTA;
已经有四款开发板作为原型开发;
可以轻易的通过 Google Cloud 使用 Firebase,极大的加快了数据的处理速度;
集成的 Weave 协议,可以方便的搞定各种无线协议的连接。
这些改变使得 Android Things 不仅仅是一个物联网操作系统,而且是一个可以快速做智能硬件开发的平台。
说这些条条框框还是不太好理解,后续会对每一点做详细的解释。
后记
作为 Android Things 专题系列的第一篇,主要说到物联网到底是什么?Brillo 的产生的原因、以及在系统设计初衷、应用开发的特点,实际上还只是 Android Things 的皮毛。Android Things 专题后续会详细讲解包括功能、软硬件开发环境、以及一个完整的示例,让大家得心应手的用 Android Things 开发出自己的应用。
物联网领域有多大,Android Things 的天地就有多大,你可以尽情的发挥!
希望大家有什么问题和建议,及时通过留言方式反馈给我,在专题的后续中,我会尽量的满足大家的要求。
推荐文章:
Android Things Developer Preview 2 发布